Data backup systems enable a client computer system to back up data to a server over a network. The backed-up data transmitted to the server can be stored in backup storage as backup objects, from which it can later be retrieved and restored on the client computer system. Often, data backup systems are configured to maintain a limited number of backup versions (e.g., pursuant to a data expiration policy), and old backup versions are expired after newer backup versions have been created.
Block-level incremental-forever backup technology involves creating an initial full backup version of the client computer system's data as blocks of raw data, followed by incremental backup versions of data that has changed since the prior backup. A complete restoration of the client computer system's data can therefore require using data from an initial full backup version and one or more incremental backup versions. Because a backup version can depend on other backup versions, when expiring old data, block-level incremental-forever back-up systems typically utilize an expiration process to ensure that data needed for a complete restoration is retained.
One such expiration process involves combining old backup versions to consolidate data that is to be retained, while expiring unneeded data. This technique requires reading data from backup storage and can therefore limit the backup storage media that can be used. For example, this technique can be used with fast, random-access backup storage media (e.g., hard disk drives), but is not well-suited for use with sequential-access backup storage media (e.g., tape drives) and backup storage media with slow access times. The process of reading data from backup storage and consolidating valid data can also consume additional backup server resources. Further, the consumption of backup server resources typically increases with larger amounts of client system data and backup storage space, which can limit the scalability of the data backup system.
Another expiration process involves expiring a full backup version along with its dependent incremental backup versions. While this technique can avoid having to read and consolidate data stored in backup storage, it requires periodically creating full backup versions, as opposed to creating a single, initial full backup version. Creating periodic full backups can consume additional storage space, additional bandwidth, and additional client system and backup server resources. Further, expiration is not achieved with the granularity of a single backup version, as multiple backup versions are expired together. Again, these effects can limit the scalability of the data backup system.